package com.xgry.bpm.api.business.author.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xgry.bpm.api.business.author.entity.TBAuthor;
import com.xgry.bpm.api.business.author.form.TBAuthorForm;
import com.xgry.bpm.api.business.author.vo.TBAuthorVO;
import com.xgry.bpm.api.business.author.vo.TreeDataCheckVo;
import com.xgry.bpm.common.utils.MiniUITreeCheckUtil;

import java.util.List;

/**
 * <p>
 * TBAuthor服务类
 * </p>
 *
 * @author admin
 * @since 2020-07-15
 */
public interface TBAuthorService extends IService<TBAuthor> {
    /**
     * 保存信息对象
     * @param record 信息对象
     * @return 影响记录数
     */
    int save(TBAuthorForm record);

    /**
     * 根据主键更新信息对象
     * @param record 信息对象
     * @return 影响记录数
     */
    int updateById(TBAuthorForm record);

    /**
     * 根据主键删除信息对象
     * 逻辑删除,字段改为删除态
     * @param id 主键
     * @return 影响记录数
     */
    int deleteById(String id);

    /**
     * 根据主键查询信息对象
     * @param id 主键
     * @return 信息对象
     */
    TBAuthorVO selectById(String id);

    /**
     * 根据主键查询信息对象
     * @param record 查询请求条件
     * @return 信息列表
     */
    List<TBAuthorVO> selectAll(TBAuthorForm record);

    /**
     * 分页查询信息对象
     * @param record 查询请求条件
     * @return 信息列表
     */
    IPage<TBAuthorVO> selectPage(TBAuthorForm record);

    /**
     * 分页查询信息对象
     *
     * @param page 分页条件   queryWrapper 查询条件
     * @return 信息列表
     */
    IPage<TBAuthor> getPage(IPage<TBAuthor> page,QueryWrapper<TBAuthor> queryWrapper);


    List<TreeDataCheckVo> getAuthorData(Integer roleId);

    List<TreeDataCheckVo> getAuthorDataByRoleIds(List<Integer> roleIds);

    List<MiniUITreeCheckUtil> toAuthorTree(List<TreeDataCheckVo> list);


}

